package com.aaa.proxymode.demo02;


/**
 * @author C-Q
 * @version 1.1.0
 * @Description:    JDK动态代理：代理对象=增强内容+原对象。（其实就是spring中的aop）
 *
    意义：在编程中我们希望自己的代码是灵活的而不是死板的，
        能动态配置的东西就不要写死。这样来提高程序的可扩展性。
        如果不使用代理模式，将来我们想在当前的业务逻辑下添加一些其他的处理，
        比如日志、校验等等，就不得不侵入原有的业务代码，尤其是在重重继承关系复杂的类中，
        需要增加一些内容，并不清楚会不会影响到其他功能，所以使用代理来实现需要增加的内容。

 * @date 2022/11/9
 */
public class Test {
    public static void main(String[] args) {
        ProxyFactory proxy = new ProxyFactory(new Landlord());
        //代理对象
        Hire instance = proxy.getInstance();
        instance.mai();
    }
}

/*JDK动态代理：必须基于接口实现【被代理的类必须实现接口】*/
